package com.github.binarywang.demo.wechat.shiro;

import com.github.binarywang.demo.wechat.entity.User;

/**
 * 托管用户信息工厂类
 * 
 * @author Victor
 *
 */
public final class JwtUserFactory {

	private JwtUserFactory() {
	}

	/**
	 * 使用数据库中查询到的用户信息生成Spring Security使用的用户信息
	 * 
	 * @param user
	 * @return
	 */
	public static JwtUser create(User user) {
		return new JwtUser(user.getUserId(), // 用户ID
				user.getUsername(), // 用户名称
				user.getEmail(), // Email
				user.getMobile(), // 手机号
				user.getEmployeeId(), // 关联的员工ID
				user.getLastPasswordResetDate()// 密码重置日期
		// ,mapToGrantedAuthorities(user.getAuthorities()), // 权限部分
		// user.getEnabled(),
		);
	}

	/*
	 * private static List<GrantedAuthority> mapToGrantedAuthorities(List<Authority>
	 * authorities) { // 将用户权限列表进行处理 return authorities.stream().map(authority ->
	 * new SimpleGrantedAuthority(authority.getName().name()))
	 * .collect(Collectors.toList()); // 此处需要说明一下Stream：Java 8 中的 Stream
	 * 是对集合（Collection）对象功能的增强，不了解Stream的可以去脑补一下 //
	 * https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/ }
	 */
}
